import redis
import requests
from bs4 import BeautifulSoup
# 导入lxml的etree模块
from lxml import etree

headers={
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
}
url = 'http://www.techlabplt.com:8080/BD-PC/proxy.html'

response = requests.get(url=url, headers=headers)
response.encoding='utf-8'
html = etree.HTML(response.text)

r = redis.StrictRedis(
    # Redis数据库的IP地址，127.0.0.1（代表本地）
    host='127.0.0.1',
    # Redis数据库服务的端口号；默认端口号27017
    port=6379,
    # 选择0数据库
    db=0,
    # 字符串输出
    decode_responses=True
)

pageHtml = BeautifulSoup(response.text, "html.parser")
# 获取html内的div，div的class为proxy-title。里面包含着此网站的标题数据
title = pageHtml.find("div", attrs={"class": "proxy-title"}).text.replace(" ", '').replace("\n", '')
# 输出标题
print(title)

# 代理网站的tr列表
dataDiv = html.xpath('/html/body/div[3]/div[2]/div/div[2]/table/tbody/tr')
dataList=[]
for data in dataDiv:
    # 得到每一行中的每一列
    oneData = data.findall('td')

    r.set('ip地址', oneData[0].text)
    r.set('端口', oneData[1].text)
    r.set('代理类型', oneData[3].text)
    r.set('地理位置', oneData[5].text)

    print('ip地址： '+r.get('ip地址'))
    print('端口： '+r.get('端口'))
    print('代理类型：'+r.get('代理类型'))
    print('地理位置： '+r.get('地理位置'))
    print('')

# 4.查看类型
print(r.flushdb())
